package com.example.goods_admin.service.impl;

import com.example.goods_admin.common.Result;
import com.example.goods_admin.entity.User;
import com.example.goods_admin.mapper.UserMapper;
import com.example.goods_admin.service.Userservice;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserserviceImpl implements Userservice {

    @Autowired
    UserMapper userMapper;

    @Override
    public Result addUser(User user) {
        /**
         * 1、查询数据通过账号userId
         * 2、如果有，返回注册失败，请重新注册
         * 3、如果没有，保存用户信息到数据，显示注册成功
         * 4、跳转到登录页面
         */
//        1、查询数据通过账号userId
        User user1 = userMapper.seleteUserByUserId(user.getUserId());
        if (user1 == null) {
            userMapper.addUser(user);
            return Result.succeed("注册成功");
        } else {
            return Result.failed("注册失败，账户已存在");
        }
    }

    @Override
    public Result login(User user) {
        /**
         * 1、先根据账号查询，是否账号存在
         * 2、不存在，显示该账户未注册，先注册再登录
         * 3、存在，查询该账户的密码是不是数据库中的密码
         * 4、如果传入的密码和数据库的密码不一样，说明密码错误，请重新输入密码
         * 5、如果传入的密码和数据库的密码一样，说明账号密码都正确，显示登录成功，跳转到首页
         */

        //1、根据账号查询，是否账号存在
        User user2 = userMapper.seleteUserByUserId(user.getUserId());

        //2、不存在，显示该账户未注册，先注册再登录
        if (user2 == null) {
            return Result.failed("用户不存在，请注册");
        } else {
            //3、存在，查询该账户的密码是不是数据库中的密码
            User user3 = userMapper.seleteUserByPassword(user);
            if (user3 != null && user3.getPassword().equals(user.getPassword())) {
                return Result.succeed("登录成功");
            } else {
                return Result.failed("密码错误");
            }

        }

    }

    /**查询所有用户
     *
     */
    @Override
    public Result selectUser(User user) {
        int pageNum = user.getPageNum()==0?1:user.getPageNum();
        int pageSize = user.getPageSize()==0?10:user.getPageSize();

        //1、开启分页查询
        PageHelper.startPage(pageNum,pageSize);

        //2、查询结果
        List<User> userList  = userMapper.seleteUser(user);

        //3、封装结果
        PageInfo<User> userPageInfo = new PageInfo<>(userList);

        //4、返回
        return Result.succeed("查询成功",userPageInfo);

    }


    /**删除指定用户
     *
     */
    @Override
    public Result deleteUser(String userId) {
        return Result.succeed("删除成功",userMapper.deleteById(userId));
    }

    /**编辑用户
     *
     */

    @Override
    public Result updateUser(User user) {
        return Result.succeed("修改成功",userMapper.updateUser(user));
    }
    /**批量删除用户
     *
     */
    @Override
    public Result clearUser(List<String> list) {
        return Result.succeed("删除成功",userMapper.clearUser(list));
    }






}

